package JAVACORE_TRAINING.OOPs.OBJECT_AND_CLASSES;

public class GiangVien {
	// 1. Biến đối tượng
	private int MaGiangVien;
	private String HoVaTen;
	private String DienThoai;

	// 2. Hàm khởi dựng cho đối tượng<Constructor>
	/*
	 * + Trùng tên với tên lớp đối tượng. + Ko có kiểu trả về và mặc định là
	 * public. + Nếu lớp đối tượng mà ko khai báo hàm khởi dựng ko tham số --> 1
	 * hàm khởi dựng ko tham số mặc định sẽ đc tạo ra <ngầm định>. + Có 02 loại
	 * hàm khởi dựng: --> Ko tham số <Khởi tạo giá trị mặc định cho đối tượng
	 * khi sinh ra> --> Có tham số <Khởi tạo giá trị theo tham số cho đối tượng
	 * khi sinh ra>
	 */

	// --> Ko tham số <Khởi tạo giá trị mặc định cho đối tượng khi sinh ra>
	public GiangVien() {
		MaGiangVien = -1;
		HoVaTen = "Chưa xác định";
		DienThoai = "Chưa có điện thoại";
	}

	// --> Có tham số <Khởi tạo giá trị theo tham số cho đối tượng khi sinh ra>
	public GiangVien(int MaGV, String HoVaTen, String DienThoai) {
		MaGiangVien = MaGV;
		this.HoVaTen = HoVaTen;
		this.DienThoai = DienThoai;
	}

	public GiangVien(int MaGV) {
		MaGiangVien = MaGV;
	}

	public GiangVien(String HoVaTen, String DienThoai) {
		this.HoVaTen = HoVaTen;
		this.DienThoai = DienThoai;
	}

	// 3. Thuộc tính của đối tượng
	/*
	 * - Là thành phần cho phép chúng ta có thể lấy thông tin biến đối tượng
	 * hoặc thiết lập thông tin cho biến đối tượng. - Thể hiện qua Get hoặc Set
	 * + Get: Lấy thông tin về. + Set: Thiết lập thông tin cho đối tượng
	 */
	public int getMaGiangVien() {
		return MaGiangVien;
	}

	public void setMaGiangVien(int MaGiangVien) {
		this.MaGiangVien = MaGiangVien;
	}

	/*
	 * Sử dụng tính năng tự động sinh ra các thuộc tính cho đối tượng Right
	 * Click --> Source --> General Getter And Setter
	 */
	public String getHoVaTen() {
		return HoVaTen;
	}

	public void setHoVaTen(String hoVaTen) {
		HoVaTen = hoVaTen;
	}

	public String getDienThoai() {
		return DienThoai;
	}

	public void setDienThoai(String dienThoai) {
		DienThoai = dienThoai;
	}
	
	//4. Phương thức - Thể hiện hành vi của đối tượng hiện thời
	public String TaiNang(){
		return "Chém gió thành thần :D";
	}
	
	public void ABC(){
		//return "";
	}
	
	@Override
	public String toString() {
		return MaGiangVien +" - "+ HoVaTen + " - "+ DienThoai;
	}
}